package com.flejay.dreamrecruiter.model;

import java.util.ArrayList;
import java.util.regex.Pattern;

/**
 * Repr�sente la deuxieme profondeur de d�coupage du CV en bloc autrement appel� "sous bloc"
 * 
 * @author Victor Fleurant
 *
 */
public final class SubTag extends AbstractTag implements Cloneable{
	
	private SubTag(){
		super();
	}
	
	// rejoindre le contenu qui matche dans un seul sous tag
	private boolean agglomerate = false;
	// le nom du fichier contenant les regexs correspondantes
	private String regexFileName = "";
	// true => si la prochaine ligne ne matche avec rien alors on la rattache au gros bloc (pas d'extraction fine)
	private boolean isolatedStrategy = false;
	
	public static SubTag getNewInstance(){
		SubTag subTag = new SubTag();
		subTag.setLabel("");
		subTag.setRegexp(new ArrayList<Pattern>());
		return subTag;
	}
	
	@Override
	public Object clone(){
		SubTag clonedSubTag = getNewInstance();
		clonedSubTag.setLabel(this.getLabel());
		clonedSubTag.setSizeObjective(this.getSizeObjective());
		for (Pattern regex : this.getRegexp()){
			clonedSubTag.getRegexp().add(regex);
		}
		return clonedSubTag;
	}

	public boolean isAgglomerate() {
		return agglomerate;
	}

	public void setAgglomerate(boolean agglomerate) {
		this.agglomerate = agglomerate;
	}

	public String getRegexFileName() {
		return regexFileName;
	}

	public void setRegexFileName(String regexFileName) {
		this.regexFileName = regexFileName;
	}

	public boolean isIsolatedStrategy() {
		return isolatedStrategy;
	}

	public void setIsolatedStratey(boolean isIsolatedStrategy) {
		this.isolatedStrategy = isIsolatedStrategy;
	}
}
